package com.agu.tasks;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
 * 
 * 
 * cronExpression定义时间规则，Cron表达式由6或7个空格分隔的时间字段组成：秒 分钟 小时 日期 月份 星期 年（可选）
 *  	字段　　允许值　　允许的特殊字符 
		秒     　 0-59 　　　　, - * / 
		分     　 0-59　　　　 , - * / 
		小时      0-23 　　　　, - * / 
		日期      1-31 　　　　, - * ? / L W C 
		月份      1-12 　　　　, - * / 
		星期      1-7 　　　　  , - * ? / L C # 
		年          1970-2099 　　, - * /
		
		表达式网站生成: http://cron.qqe2.com/
 * @author zrb
 *
 */
@Component
public class ScheduledTasks {

	private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class);

	private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");

	
	//指定时间间隔，例如：5秒
	@Scheduled(fixedRate = 5000)
	public void reportCurrentTime() {
		log.info("间隔5秒 执行一次 :" + dateFormat.format(new Date()));
	}
	
	
    //定时任务 5秒执行一次 
    @Scheduled(cron = "0/5 * * * * ?")
    private void task1() {
    	log.info("5秒 时间点执行一次: " + dateFormat.format(new Date()));
    }
	
	
    //定时任务 1分钟执行一次 
    @Scheduled(cron = "0 0/1 * * * ?")
    private void task2() {
    	log.info("1分钟  时间点执行一次: " + dateFormat.format(new Date()));
    }
	
    //定时任务 1小时执行一次 
    @Scheduled(cron = "0 0 0/1 * * ?")
    private void task3() {
    	log.info("1小时  时间点执行一次: " + dateFormat.format(new Date()));
    }
    
}
